Small Basic
Microsoft Small Basic is a and associated . It is 's simplified variant of the programming language, intended as an easy programming language for beginners. The associated IDE provides a simplified programming environment with functionality such as , , and in-editor documentation access. The language has only 14 keywords. History Microsoft announced Small Basic in October 2008, and released the first stable version for distribution on July 12, 2011, on a (MSDN) website, together with a teaching curriculum and an introductory guide. Between announcement and stable release, a number of (CTP) releases were made. On March 27, 2015, Microsoft released Small Basic version 1.1, which fixed a bug and upgraded the targeted version from version 3.5 to version 4.5. Microsoft released Small Basic version 1.2 on October 1, 2015. Version 1.2 was the first update after a four-year hiatus to introduce new features to Small Basic. The update added classes for working with Microsoft's motion sensors, increased the number of languages supported by the included Dictionary object, and fixed a number of bugs. Language In Small Basic, one writes the illustrative as follows: TextWindow.WriteLine("Hello, World!") Microsoft Small Basic is . It supports , structures, and s for handling. s are and with no scoping rules. Conditional branching The following example demonstrates conditional branching. It requests the current temperature in and comments on the answer. TextWindow.Write("Enter the temperature today (in F): ") temp = TextWindow.ReadNumber() If temp > 100 Then TextWindow.WriteLine("It is pretty hot.") ElseIf temp > 70 Then TextWindow.WriteLine("It is pretty nice.") ElseIf temp > 50 Then TextWindow.WriteLine("Don't forget your coat.") Else TextWindow.WriteLine("Stay home.") EndIf Looping This example demonstrates a loop. Starting from one and ending with ten, it multiplies each number by four and displays the result of the multiplication. TextWindow.WriteLine("Multiplication Tables") For i = 1 To 10 TextWindow.Write(i * 4) EndFor are also supported, and the demonstrated can be augmented through the use of the Step keyword. The Step keyword is used in setting the value by which the counter variable, i, is incremented each iteration. Data types Small Basic supports basic s, like , and , and will readily convert one type to another as required by the situation. In the example, both the Read and ReadNumber methods read a string from the command line, but ReadNumber rejects any non-numeric characters. This allows the string to be converted to a numeric type and treated as a number rather than a string by the + operator. TextWindow.WriteLine("Enter your name: ") name = TextWindow.Read() TextWindow.Write("Enter your age: ") age = TextWindow.ReadNumber() TextWindow.WriteLine("Hello, " + name + "!") TextWindow.WriteLine("In 5 years, you shall be " + ( age + 5 ) + " years old!") As Small Basic will readily convert among data types, numbers can be manipulated as strings and numeric strings as numbers. This is demonstrated through the second example. TextWindow.WriteLine(Math.log("100")) 'Prints 2 TextWindow.WriteLine("100" + "3000") ' Prints 3100 TextWindow.WriteLine("Windows " + 8) ' Prints Windows 8 TextWindow.WriteLine(Text.GetLength(1023.42)) ' Prints 7 (length of decimal representation including decimal point) In the second example, both strings are treated as numbers and added together, producing the output 3100. To the two values, producing the output 1003000, it is necessary to use the Text.Append(text1, text2) method. Libraries Standard library The Small Basic includes basic classes for mathematics, , and , as well as more exotic classes that are intended to make using the language more fun for learners. Examples of these include a class, a class for retrieving photos from , and classes for interacting with Microsoft Kinect sensors. To make the classes easier to use for learners, they have been simplified. This simplification is demonstrated through the code used to retrieve a random mountain-themed image from Flickr: For i = 1 To 10 pic = Flickr.GetRandomPicture("mountains") Desktop.SetWallPaper(pic) Program.Delay(10000) EndFor Turtle graphics Small Basic includes a "Turtle" graphics library that borrows from the family of programming languages. For example, to draw a square using the turtle, the turtle is moved forward by a given number of pixels and rotated 90 degrees in a given direction. This action is then repeated four times to draw the four sides of the square. For i = 1 to 4 Turtle.Move(100) ' Forward 100 pixels Turtle.Turn(90) ' Turn 90 degrees right EndFor More complex drawings are possible by altering the turning angle of the turtle and the number of iterations of the loop. For example, one can draw a by setting the turn angle to 60 degrees and the number of iterations to six. Third-party libraries Small Basic allows the use of third-party libraries. These libraries must be written in a -compatible language, and the compiled binaries must target a compatible .NET Framework version. The classes provided by the library are required to be , flagged with a specific , and must use a specific data type. An example of a class to be used in Small Basic is provided below, written in . SmallBasicType public static class ExampleClass { public static Primitive Add(Primitive A, Primitive B) => A + B; public static Primitive SomeProperty { get; set; } public static Primitive Pi => (Primitive)3.14159; } If available, the Small Basic development environment will display documentation for third-party libraries. The development environment accepts documentation in the form of an file, which can be automatically generated from source code comments by tools such as and . External links * References